import java.util.List;
import java.util.Date;

// 客户类
public class Customer {
    private String name;                // 姓名
    private String contact;             // 联系电话
    private String deliveryAddress;     // 邮寄地址
    private boolean active;             // 是否激活
    private List<Order> orders;         // 关联的订单
}

// 订单类
public class Order {
    private Date createDate;            // 创建日期
    private String status;              // 订单状态（CREATE/PAID等）
    private Customer customer;          // 所属客户
    private List<OrderDetail> details;  // 订单详情
    private Payment payment;            // 支付方式
}

// 订单详情类
public class OrderDetail {
    private int quantity;               // 数量
    private Order order;                // 所属订单
    private Product product;            // 关联商品

    public double calculateSubTotal() { return 0; }  // 计算小计
    public double calculateWeight() { return 0; }     // 计算重量
}

// 商品项类
public class Product {
    private String title;               // 名称
    private double weight;              // 重量
    private String description;         // 描述

    public double getPriceForQuantity(int quantity) { return 0; }  // 按数量获取价格
    public double getWeight() { return weight; }                  // 获取重量
}

// 支付方式（父类）
public class Payment {
    protected double amount;            // 金额
}

// 信用卡支付
public class Credit extends Payment {
    private String number;              // 卡号
    private String type;                // 类型
    private String expireDate;          // 过期日期
}

// 现金支付
public class Cash extends Payment {
    private double cashTendered;        // 支付金额
}

// 在线转账
public class WireTransfer extends Payment {
    private String bankID;              // 银行ID
    private String bankName;            // 银行名称
}

// 支付宝
public class AliPay extends Payment {
    private String number;              // 卡号
}

// 微信支付
public class WeixinPay extends Payment {
    private String number;              // 卡号
}